package com.goldgov.notice.service;

import java.util.List;

import com.goldgov.conference.service.Conference;
import com.goldgov.distancelearning.service.Distancelearning;
import com.goldgov.noticetemplate.service.NoticeParam;
import com.goldgov.notifyrecord.service.NotifyRecord;
import com.goldgov.securityworkbench.dict.bean.dto.DictDto;
import com.goldgov.securityworkbench.dict.bean.dto.DictQuery;

public interface NoticeService {

	/**
	 * 获取通知公告列表
	 * @param query
	 * @return
	 */
	List<Notice> getNoticeList(NoticeQuery query);
	
	/**
	 * 获取收到的通知公告列表
	 * @param query
	 * @return
	 */
	List<Notice> getNoticeReceivedList(NoticeQuery query);
	
	/**
	 * 根据id查询通知公告
	 * @param noticeID
	 * @return
	 */
	Notice getNotice(String noticeID);
	
	/**
	 * 添加通知公告
	 * @param Notice
	 */
	Boolean addNotice(Notice notice);
	
	/**
	 * 修改通知公告
	 * @param Notice
	 */
	Boolean updateNotice(Notice notice);
	/**
	 * 删除通知公告
	 * @date 2018年8月7日 下午3:22:51 
	 * @author hanxiangyu
	 * @param ids
	 * @return
	 */
	Boolean deleteNotice(String[] ids);

	List<Notice> getNoticeListFull( NoticeQuery query);
	List<Notice> getNoticeListFullReceive( NoticeQuery query);
	
	/**
	 * 发送通知公告
	 * @param obj
	 * @return
	 */
	Boolean sendNotice(Conference conference,Integer type);
	/**
	 * 发送远程教育通知公告
	 * @param obj
	 * @return
	 */
	Boolean sendDisNotice(Distancelearning dis,Integer type);
	
	Boolean addStudyWarning(NotifyRecord obj);
	List<DictDto> findDictListByPage(DictQuery arg0);
	
	/**
	 * 获取收到的通知公告列表
	 * @param query
	 * @return
	 */
	List<Notice> findMobileNoticeList(NoticeQuery query);
	int getUnreadNum(String receiveUserID);
	/**
	 * 根据id查询详情
	 * @date 2018年8月28日 下午1:23:35 
	 * @author hanxiangyu
	 * @param noticeID
	 * @return
	 */
	NoticeBean findNoticeById(String noticeID,String userID);
	
	/**
	 * 获取会议信息
	 * @date 2018年7月3日 下午4:44:33 
	 * @author hanxiangyu
	 * @param conferenceId
	 * @return
	 */
	ConferenceNoticeBean getConferenceById(String conferenceId);
	/**
	 * 获取远程教育
	 * @date 2018年7月3日 下午4:44:33 
	 * @author hanxiangyu
	 * @param conferenceId
	 * @return
	 */
	ConferenceNoticeBean getDisById(String disId);
	/** 
	 * @Description: 获取模板内容进行参数拼接
	 * @author hanxiangyu
	 * @date 2018年7月3日 下午6:46:35 
	 */
	public String getTemplateCon(List<NoticeParam> param,String templateType) ;
	
	public String judgeMettingType(String noticeType) ;
	
	/**
	 * 根据id查询通知公告
	 * @param noticeID
	 * @return
	 */
	Notice getNoticeById(String noticeID);
	
}
